昨天簡單的設計了一個 ERM 之後,我們來試試看建立資料庫(Database)吧~~
資料庫可以切割 schema, 每個專案或者環境取用不同的 schema,有點像是資料夾的概念。schema 裡面有資料表,每一個 ERM 的實體對應到一張資料表(可以想像成 excel ),每個屬性對應到欄位(column),屬性值是表格內真正存放的內容(cell),一筆筆資料則是 row
CREATE TABLE `MEMBER` (
`ID` bigint(20) NOT NULL auto_increment,
`Email` varchar(128) NOT NULL,
`Password` varchar(128) NOT NULL,
PRIMARY KEY (`ID`)
)
(密碼會經過雜亂處理才存入)
Primary Key(主鍵,簡稱 pk):不可重覆的值
這邊假設為 MEMBER 資料表建立 pk
ALTER TABLE MEMBER ADD PRIMARY KEY (ID);
Foreign Key(外來鍵,簡稱 fk):兩個有關係的表格,取另外一張表格的 pk 為自己的 pk,這樣的情況就稱為 fk
這邊假設要為「訂單明細」(DETAIL)加入「訂單」(ORDER)這個外來鍵,
ALTER TABLE DETAIL
ADD FOREIGN KEY (order_detail_ID) REFERENCES ORDER (order_ID);
Create
:寫入一筆新資料,例如有新會員註冊Read
:讀出資料,例如查看歷史訂單時叫出訂單資料Update
:更新資料,例如有會員更新資料Delete
:刪除資料,例如刪除帳號、文章等等。但在一些情況下,我們不會真正把資料刪掉,而是做一個 active flag,例如商品下架,我們就把 active status 改成 false,而不是把商品刪掉。
附註:我們可以用 SQL 執行以上動作,也可以使用更方便的圖形化介面。
至於後端語言怎麼與資料庫連線,以下是 PHP 的語法:
<?php
$dsn = "mysql:host=localhost;port=3306;dbname=fa;charset=utf8";
$user = "root";
$psw = "root";
$options = array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION);
$pdo = new PDO( $dsn, $user, $psw, $options);
?>
1.設定帳號密碼 "root"、"root"
2.localhost、port 與 schema
3.設定編碼 "utf-8"
這樣就可以 new 出一個 PDO 物件去操作資料庫。
今天先這樣囉,明天講 CRUD 的語法囉~~